// 设置基地址
axios.defaults.baseURL = 'https://hmajax.itheima.net'
const exitButton = document.querySelector('#logout')
if (exitButton) {
    exitButton.addEventListener('click', function () {
        pxmu.diaglog('确定退出？')
            .then(res => {
                if (res.btn == 'right') {

                    localStorage.removeItem('username')
                    localStorage.removeItem('token')
                    location.href = './login.html'

                }
            })
    })
}
// 添加请求拦截器， 统一携带token
axios.interceptors.request.use(function (config) {
    // 可以通过headers, 查看 + 设置请求头
    // config.headers['info'] = 'itheima'
    // 每次请求，都会执行这个回调函数
    // console.log(config)
    // 在发送请求之前  如：统一设置token
    const token = localStorage.getItem('token')
    // token存在， 配置参数
    if (token) {
        config.headers['Authorization'] = token
    }
    return config;
}, function (err) {
    console.dir('request  err -->', err)
    console.log('log err -->', err.request)
    console.dir(err)
    // 超出 2xx 范围的状态码都会触发该函数。
    // const requestStatus = err.request.status;
    // // 对响应错误做点什么: 比如统一处理token失效
    // const requestStatus = err.request.status;
    // if ( requestStatus >200 || requestStatus <= 400) {
    //     pxmu.toast('用户名或密码错误')
    //     return
    // }

    // 统一处理token失效 401
    if (err.request.status === 401) {
        localStorage.removeItem('token')
        pxmu.toast('登录已过期，请重新登录')
        setTimeout(() => {
            location.href = './login.html'
        }, 1000)
    }


    // 弹框提示用户
    // 删除缓存
    // localStorage.removeItem('token')
    // 返回登录页
    // location.href = '../index.html'

    // 对请求错误做些什么
    return Promise.reject(err)
})

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么，比如: 数据剥离
    console.log(response);
    response;
    return response.data;
}, function (err) {
    // console.log('response  err -->', err.response.data.code)
    console.dir(err)
    // console.log('dir err -->', error.response.status)// 错误示范，dir不能添加字符串
    // 超出 2xx 范围的状态码都会触发该函数。
    // const responseStatus = err.response.status;
    // if ( responseStatus >200 || responseStatus <= 400) {
    //     localStorage.removeItem('token')
    //     pxmu.toast('登录已过期，请重新登录！')
    //     setTimeout(() => {
    //         location.href = './login.html'
    //     }, 1000)
    // }
    // 对响应错误做点什么: 比如统一处理token失效
    console.log(err.response.status);
    if (err.response.status === 401) {
        localStorage.removeItem('token')
        pxmu.toast('登录已过期，请重新登录')
        setTimeout(() => {
            location.href = './login.html'
        }, 1000)
    }
    // 用户名或密码错误提示
     if (err.response.data.code === '10006'){
        pxmu.fail(err.response.data.message)

    }


    // 统一处理字段效验
    if (err.response.data.code === 400001) {
        pxmu.toast(err.response.data.message)
    }
    return Promise.reject(err);
});
